﻿
# region Using

using System.Runtime.Serialization;

# endregion Using


namespace NetBay.Core.BusinessEntities.Toolkit.DocDataBaseAndFileSystem
{
    /// <summary>Represent the verification between the database and the file system.</summary>
    [DataContract]
    public class DocDataBaseAndFileSystem
    {
        #region Attributs

        /// <summary>Organization code.</summary>
        private long _OrganizationCode;

        /// <summary>_Organization name</summary>
        private string _OrganizationName;

        /// <summary>Folder type code.</summary>        
        private long _FolderTypeCode;

        /// <summary>Folder table type name.</summary>        
        private string _FolderTypeTableName;

        /// <summary>Folder type name.</summary>        
        private string _FolderTypeName;

        /// <summary>Item code.</summary>        
        private string _ItemCode;

        /// <summary>Item name.</summary>        
        private string _ItemName;

        /// <summary>Document Number.</summary>        
        private long _DocNumber;

        /// <summary>Document Id folder.</summary>        
        private long _DocFolderId;

        /// <summary>Document Iddoc.</summary>        
        private string _DocIddoc;

        /// <summary>Document name file system .</summary>        
        private string _DocNameFileSystem;

        /// <summary>Document path.</summary>        
        private string _DocPath;

        /// <summary>Document full path.</summary>        
        private string _DocFullPath;

        /// <summary>Document origin name.</summary>        
        private string _DocOriginName; 

        #endregion

        #region Properties

        /// <summary>
        /// Gets or sets the organisation code.
        /// </summary>
        /// <value>The organisation code.</value>
        [DataMember]
        public long OrganizationCode
        {
            get { return _OrganizationCode; }
            set { _OrganizationCode = value; }
        }

        /// <summary>
        /// Get or Set operator table field name.
        /// </summary>
        /// <value>The name of the organization.</value>
        [DataMember]
        public string OrganizationName
        {
            get { return _OrganizationName; }
            set { _OrganizationName = value; }
        }

        /// <summary>
        /// Gets or sets the folder type code.
        /// </summary>
        /// <value>The folder type code.</value>
        [DataMember]
        public long FolderTypeCode
        {
            get { return _FolderTypeCode; }
            set { _FolderTypeCode = value; }
        }

        /// <summary>
        /// Gets or sets the name of the table folder type.
        /// </summary>
        /// <value>The name of the table folder type.</value>
        [DataMember]
        public string FolderTableTypeName
        {
            get { return _FolderTypeTableName; }
            set { _FolderTypeTableName = value; }
        }

        /// <summary>
        /// Gets or sets the name of the folder type.
        /// </summary>
        /// <value>The name of the folder type.</value>
        [DataMember]
        public string FolderTypeName
        {
            get { return _FolderTypeName; }
            set { _FolderTypeName = value; }
        }

        /// <summary>
        /// Gets or sets the item code.
        /// </summary>
        /// <value>The item code.</value>
        [DataMember]
        public string ItemCode
        {
            get { return _ItemCode; }
            set { _ItemCode = value; }
        }

        /// <summary>
        /// Gets or sets the name of the item.
        /// </summary>
        /// <value>The name of the item.</value>
        [DataMember]
        public string ItemName
        {
            get { return _ItemName; }
            set { _ItemName = value; }
        }

        /// <summary>
        /// Gets or sets the number document.
        /// </summary>
        /// <value>The number document.</value>
        [DataMember]
        public long DocumentNumber
        {
            get { return _DocNumber; }
            set { _DocNumber = value; }
        }

        /// <summary>
        /// Gets or sets the document folder Id.
        /// </summary>
        /// <value>The document folder Id.</value>
        [DataMember]
        public long DocumentFolderId
        {
            get { return _DocFolderId; }
            set { _DocFolderId = value; }
        }

        /// <summary>
        /// Gets or sets the iddoc of document.
        /// </summary>
        /// <value>The iddoc of document.</value>
        [DataMember]
        public string DocumentIddoc
        {
            get { return _DocIddoc; }
            set { _DocIddoc = value; }
        }

        /// <summary>
        /// Gets or sets the document name file system.
        /// </summary>
        /// <value>The document name file system.</value>
        [DataMember]
        public string DocumentNameFileSystem
        {
            get { return _DocNameFileSystem; }
            set { _DocNameFileSystem = value; }
        }

        /// <summary>
        /// Gets or sets the document path.
        /// </summary>
        /// <value>The document path.</value>
        [DataMember]
        public string DocumentPath
        {
            get { return _DocPath; }
            set { _DocPath = value; }
        }

        /// <summary>
        /// Gets or sets the document full path.
        /// </summary>
        /// <value>The document full path.</value>
        [DataMember]
        public string DocumentFullPath
        {
            get { return _DocFullPath; }
            set { _DocFullPath = value; }
        }

        /// <summary>
        /// Gets or sets the name of the document origin.
        /// </summary>
        /// <value>The name of the document origin.</value>
        [DataMember]
        public string DocumentOriginName
        {
            get { return _DocOriginName; }
            set { _DocOriginName = value; }
        }

        #endregion

        #region Method

        /// <summary>
        /// Methode DocDataBaseAndFileSystem's Tostring.
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            object[] args = { OrganizationName, FolderTypeName, ItemName, DocumentNumber, DocumentOriginName, DocumentFullPath + "\\" + DocumentNameFileSystem };
            return string.Format("Object DocDataBaseAndFileSystem main value are: (OrganizationName<{0}>) (FolderTypeName<{1}>) (ItemName<{2}>) (DocumentNumber<{3}>) " +
                                            "(DocumentOriginName<{4}>) (DocumentFullPathAndName<{5}>)", args);
        }

        #endregion Methd
    }
}
